//操作处理标志
var processFlag = false;
//异常信息处理对话框
var msgWindow = new Ext.Window({
			layout : 'fit',
			width : 500,
			title : '系统错误',
			height : 300,
			closeAction : 'hide',
			iconCls:'systemErroIconCls',
			plain : true,
			modal : true,
			collapsible : false,
			maximizable : true,
			draggable : true,
			closable : true,
			resizable : true,
			animateTarget : window.document.body,
			buttons : [{
						text : '关闭',
						handler : function() {
							msgWindow.hide();
						}
					}]
		});
var msgContent = new Ext.form.TextArea({});
msgWindow.add(msgContent);
// 处理Form表单提交信息失败
function processFailure(form, action) {
	processFlag = false;
	try{
		var msg = action.result.msg;
		if( action.result.exception ){
			msg += '\r异常详细内容：' + action.result.exception;
			msgWindow.show();
			msgContent.setRawValue(msg);
		}else{
			Ext.MessageBox.show({
				title : '提示',
				msg : msg,
				buttons : Ext.MessageBox.OK,
				fn : function(btn) {
					if (action.result.loginUrl)
						window.location.reload();
				},
				icon:'ext-mb-error'
			});
		}
	}catch(e){
		Ext.MessageBox.hide();
		msgWindow.show();
		msgContent.setRawValue("系统异常或超时，请重试！");
	}
}
//统一Ajax请求会话超时处理
Ext.Ajax.addListener('requestcomplete',checkUserSessionStatus, this);
//检查用户是否超时
function checkUserSessionStatus(conn,response,options){
	processFlag = false;
    //Ext重新封装了response对象 
	if(typeof response.getResponseHeader!="undefined" && typeof response.getResponseHeader("passwdexpried") != 'undefined'){  
        //发现请求超时，退出处理代码...  
    	Ext.MessageBox.show({
           title: '系统提示',
           msg: '用户超时，无法完成操作，系统将跳转至登录页面！',
           buttons: Ext.MessageBox.OK,
           fn: function(btn){
	           	  window.location.reload();
	       },
           icon: 'ext-mb-error'
       });
     }if(typeof response.getResponseHeader!="undefined" && typeof response.getResponseHeader.noaccessstatus != 'undefined'){  
         //发现请求超时，退出处理代码...  
     	Ext.MessageBox.show({
            title: '系统提示',
            msg: '您无权访问改功能，请与系统管理员联系！',
            buttons: Ext.MessageBox.OK,
            fn: function(btn){
 	           	  
 	       },
            icon: 'ext-mb-error'
        });
      }else{
     	//用Json处理编码，判断是否发生异常
     	var resultText = response.responseText;
     	//查找是否有异常信息
     	if( resultText && resultText.indexOf('exception')>0 ){
     		var result = Ext.util.JSON.decode(resultText);
     		var msg = '';
     		if( result.exception ){
				msg += '\r异常详细内容：' + result.exception;
				msgWindow.show();
				msgContent.setRawValue(msg);
				Ext.MessageBox.hide();
     		}
     	}
     }
}
//显示等待状态条
function showWaitingBar(){
	Ext.MessageBox.show({
           title: '系统提示',
           width:240,
           progress:true,
           closable:false,
           animEl: 'mb6'
    });
    // 这是一个进度条
    var funProgress = function(v) {
		return function() {
			Ext.MessageBox.updateProgress(v/100,'数据提交，服务处理中......');
		};
	};
	for(var i = 1; i <= 100; i++){
		if( !processFlag ) {
			Ext.MessageBox.hide();
			break;
		}
		setTimeout(funProgress(i), i*500);
	}
}
